Appendix R Mass Conservation

The demonstration model described in Appendix C was extended to facilitate a series of more realistic (although still idealised) simulations examining mass conservation of the WQM. It is referred to as the mass conservation model and has the following features, unless specified otherwise:

  • General
    • 1 month (745 hours) duration
    • Includes salinity, temperature (and heat calculations), sediment and varying numbers of water quality computed variables
    • 15 minute output
    • 15 minute water quality simulation timestep
  • Geometry
    • Four three-dimensional flat bottomed columns, with the same bed elevation
    • Lateral cell areas each of approximately 10 km\(^2\)
    • Depth of 21 metres
    • 20 vertical layers, with 17 fixed and 3 sigma (which span the top 4 metres of the water column)
  • Boundary conditions
    • No inflows, outflows or other flow boundaries
    • Meteorological boundaries applied
      • Hourly timestep, 15 minute update
      • Typical mid latitude autumnal conditions, with rainfall included
  • Water quality parameterisation
    • WQM control files that present the parameters used are included below for each simulation

This static water setup was designed to be challenging for mass conservation. In particular, the exclusion of external flow boundaries (that can reset or overwhelm internal process calculations) was deliberate. These conditions mimic a low rainfall lacustrine environment.

The primary calculation used to assess mass conservation for each computed variable \(X\) follows:

\[\begin{equation} X_{mb}(t) = 100 \times \frac{X_{mp}(t) - X_{mi}(t)}{X_{mi}(t)} \tag{R.1} \end{equation}\] where \(X_{mb}(t)\) is the percentage difference between two methods of computing the mass of computed variable \(X\) in the domain:

  • \(X_{mp}(t)\): Progressively modifying the initial domain mass by adding to it the sum of the relevant fluxes \(F_i\) at each timestep \(t\). No resetting of this calculation occurs - it is designed (stringently) such that any mass conservation errors will accumulate in time
  • \(X_{mi}(t)\): Multiplying the reported concentrations of \(X\) in cell \(j\) of volume \(V_j\) and integrating over the entire model domain at each timestep \(t\). This mass is reset at each timestep and corresponds to the mass reported by TUFLOW FV

\(X_{mp}(t)\) and \(X_{mi}(t)\) are computed as per Equation (R.2). \(F_{i}(t)\) are the relevant fluxes for \(X\) (up to a total number of \(i=NF\) fluxes) and are converted from per area (or per volume) and per time amounts to mass amounts. The number of cells in the domain is \(NC\), and \(\left[X\right]_{j}(t)\) is the concentration of computed variable \(X\) in cell \(j\) at time \(t\). The model contains sigma layers and as such \(V_{j}\) may be time varying.

\[\begin{equation} \left.\begin{aligned} X_{mp}(t) =& \sum_{j=1}^{NC} \left[X\right]_{j}(0) \times V_j(0) + \sum_{i=1}^{NF} F_{i}(t) \\ \\ X_{mi}(t) =& \sum_{j=1}^{NC} \left[X\right]_{j}(t) \times V_j(t) \end{aligned}\right\} \tag{R.2} \end{equation}\]

As a general note, reported fluxes need to be used with care in mass conservation analyses. This is because fluxes are reported as instantaneous values, and are not integrated or accumulated between overall model output file writing timesteps. For example, if water quality calculations are undertaken every 15 minutes but outputs are written every hour, then several water quality calculations are undertaken between reporting. Whilst the hourly output water quality concentrations will correctly reflect the action of fluxes at every 15 minute increment, the output fluxes will be instantaneous, and equal to those that happen to be occurring at the hourly output time. They will not necessarily be reflective of the fluxes that occurred over the course of the preceding hour. Using these fluxes in mass conservation calculations can therefore lead to spurious outcomes. One solution to this matter is to set the output and water quality (and boundary condition update) timesteps to be the same in mass conservation analyses, noting that this may however generate large output files.

Three simulations were executed, with one for each of the DO, inorganics and organics simulation classes. The timeseries of \(X_{mb}(t)\), together with the fluxes used in calculation, are presented below for all relevant computed variables.

R.1 Simulation class: DO

The computed variables presented are:

  • Dissolved oxygen

The initial conditions are:

  • Dissolved oxygen: 8.0 mg/L

The relevant fluxes considered are (coloured as sources or sinks):

  • Dissolved oxygen
    • Sediment
    • Atmospheric (both source and sink)

The mass conservation performance of the WQM is presented in Figure R.1, via \(DO_{mb}\). Over the duration of the simulation, mass conservation holds to within 0.012%. Relevant fluxes used to compute this mass balance are presented subsequently.

Figure R.1: Dissolved oxygen mass balance parameter \(DO_{mb}(t)\)

Figure R.2: Dissolved oxygen WQM fluxes \(F_i(t)\) used to compute \(DO_{mp}(t)\)

Following are the WQM control file commands used to generate the above.

simulation class == DO
wq dt == 900.0 
wq units == mgl

oxygen model == O2
    oxygen min max == 0.0, 12.0
    oxygen benthic == 4.7, 1.08
end oxygen model
    
material == default
    oxygen flux == -1400.0
end material

material == 1
    oxygen flux == -1100.0
end material

material == 2
    oxygen flux == -1200.0
end material

material == 3
    oxygen flux == -1300.0
end material

R.2 Simulation class: Inorganics

The computed variables presented are:

  • Dissolved oxygen
  • Silicate
  • Ammonium
  • Nitrate
  • FRP
  • Two phytoplankton groups (one each for the basic and advanced model)

The initial conditions are:

  • Dissolved oxygen: 8.0 mg/L
  • Silicate: 50.0 mg/L
  • Ammonium: 0.15 mg/L
  • Nitrate: 0.2 mg/L
  • FRP: 0.04 mg/L
  • Blue green phytoplankton: 2.0 \(\mu\)g/L (advanced model)
  • Blue green internal nitrogen: 0.008 mg/L
  • Blue green internal phosphorus: 0.0012 mg/L
  • Green phytoplankton: 5.0 \(\mu\)g/L (basic model)

The relevant fluxes considered are:

  • Dissolved oxygen
    • Sediment
    • Atmospheric (both source and sink)
    • Nitrification
    • Phytoplankton primary productivity
    • Phytoplankton respiration
  • Silicate
    • Sediment
    • Phytoplankton primary productivity
    • Phytoplankton mortality
    • Phytoplankton excretion
  • Ammonium
    • Sediment
    • Atmospheric (wet and dry deposition)
    • Nitrification
    • Phytoplankton primary productivity
    • Phytoplankton mortality
    • Phytoplankton excretion
  • Nitrate
    • Sediment
    • Atmospheric (wet and dry deposition)
    • Nitrification
    • Denitrification
    • Phytoplankton primary productivity
  • FRP
    • Sediment
    • Atmospheric
    • Phytoplankton primary productivity
    • Phytoplankton mortality
    • Phytoplankton excretion
  • Phytoplankton (both groups)
    • Phytoplankton primary productivity
    • Phytoplankton respiration
    • Phytoplankton mortality
    • Phytoplankton excretion
    • Phytoplankton sedimentation

The mass conservation performance of the WQM is presented in Figure R.3, via \(DO_{mb}(t)\), \(Si_{mb}(t)\), \(Amm_{mb}(t)\), \(Nit_{mb}(t)\), \(FRP_{mb}(t)\) and \(PHY_{mb}(t)\). Over the duration of the simulation, mass conservation holds to within approximately 0.023%. Relevant fluxes used to compute these mass balances, as well as total nitrogen and total phosphorus mass balances, are presented subsequently.

Figure R.3: Inorganics mass balance parameters \(DO_{mb}(t)\), \(Si_{mb}(t)\), \(Amm_{mb}(t)\), \(Nit_{mb}(t)\), \(FRP_{mb}(t)\) and \(PHY_{mb}(t)\)

Figure R.4: Dissolved oxygen WQM fluxes \(F_i(t)\) used to compute \(DO_{mb}(t)\)

Figure R.5: Silicate WQM fluxes \(F_i(t)\) used to compute \(Si_{mb}(t)\)

Figure R.6: Ammonium WQM fluxes \(F_i(t)\) used to compute \(Amm_{mb}(t)\)

Figure R.7: Nitrate WQM fluxes \(F_i(t)\) used to compute \(Nit_{mb}(t)\)

Figure R.8: FRP WQM fluxes \(F_i(t)\) used to compute \(FRP_{mb}(t)\)

Figure R.9: Phytoplankton WQM fluxes \(F_i(t)\) used to compute \(PHY_{mb}(t)\)

Figure R.10: Inorganics total nitrogen and total phosphorus mass balance parameters \(TN_{mb}(t)\) and \(TP_{mb}(t)\)

Following are the WQM control file commands used to generate the above.

simulation class == inorganics
wq dt == 900.0 
wq units == mgl

oxygen model == O2
    oxygen min max == 0.0, 12.0
    oxygen benthic == 4.7, 1.08
end oxygen model

silicate model == si
    silicate min max == 0.0, 500.0
    silicate benthic == 4.2, 1.01
    oxygen == on
end silicate model

inorganic nitrogen model == ammoniumnitrate
    ammonium min max == 0.0, 50.0
    nitrate min max == 0.0, 100.0
    ammonium benthic == 4.05, 1.06
    nitrate benthic == 4.25, 1.10
    nitrification == 0.05, 4.15, 1.01
    denitrification == michaelis menten, 0.05, 4.01, 1.03
    oxygen == on
    atmospheric deposition == 5.0, 0.0, 0.5
end inorganic nitrogen model

inorganic phosphorus model == frphs
    FRP min max == 0.0, 5.0
    FRP benthic == 4.3, 1.095
    oxygen == on
    atmospheric deposition == 0.5
end inorganic phosphorus model

phyto model == advanced, bluegreen
    min max == 0.05, 50.0
    temperature limitation == standard, 19.0, 22.0, 29.0
    salinity limitation == none
    light limitation == chalker, 0.0005, 150.0
    nitrogen limitation == 0.005, 1.5, 2.0, 4.0
    phosphorus limitation == 0.002, 0.02, 0.3, 0.6
    silicate limitation == 0.005, 15.0
    uptake == 2.5, 0.5, 8.0
    primary productivity == 2.3, 1.08 
    respiration == 0.06, 1.04, 0.2, 0.3, 0.1 
    carbon chla ratio == 26.8
    nitrogen fixing == 0.002, 0.3
    settling == constant, -0.3
end phyto model 

phyto model == basic, green
    min max == 0.05, 50.0
    temperature limitation == standard, 19.0, 22.0, 29.0
    salinity limitation == none
    light limitation == steele, 0.0005, 150.0
    nitrogen limitation == 0.01, 2.5
    phosphorus limitation == 0.005, 0.05
    silicate limitation == 0.01, 4.0
    uptake == 3.0, 0.6, 8.0
    primary productivity == 1.9, 1.1 
    respiration == 0.05, 1.1, 0.3, 0.4, 0.5 
    carbon chla ratio == 27.8
    nitrogen fixing == 0.001, 0.5
    settling == constant, -0.4
end phyto model

material == default
    oxygen flux ==  -1400.0
    silicate flux == 10.0
    ammonium flux == 20.0
    nitrate flux == 30.0
    frp flux == 5.0
end material

material == 1
    oxygen flux == -1100.0
    silicate flux == 11.0
    ammonium flux == 21.0
    nitrate flux == 31.0
    frp flux == 6.0
end material

material == 2
    oxygen flux == -1200.0
    silicate flux == 12.0
    ammonium flux == 22.0
    nitrate flux == 32.0
    frp flux == 7.0
end material

material == 3
    oxygen flux == -1300.0
    silicate flux == 13.0
    ammonium flux == 23.0
    nitrate flux == 33.0
    frp flux == 8.0
end material

R.3 Simulation class: Organics

The computed variables presented are:

  • Dissolved oxygen
  • Silicate
  • Ammonium
  • Nitrate
  • FRP
  • Particulate organic carbon
  • Dissolved organic carbon
  • Particulate organic nitrogen
  • Dissolved organic nitrogen
  • Particulate organic phosphorus
  • Dissolved organic phosphorus
  • Refractory particulate organic matter
  • Refractory dissolved organic carbon
  • Refractory dissolved organic nitrogen
  • Refractory dissolved organic phosphorus
  • Two phytoplankton groups (one each for the basic and advanced model)

The initial conditions are:

  • Dissolved oxygen: 8.0 mg/L
  • Silicate: 1.0 mg/L
  • Ammonium: 0.15 mg/L
  • Nitrate: 0.2 mg/L
  • FRP: 0.04 mg/L
  • Particulate organic carbon: 2.5 mg/L
  • Dissolved organic carbon: 1.5 mg/L
  • Particulate organic nitrogen: 0.3 mg/L
  • Dissolved organic nitrogen: 0.1 mg/L
  • Particulate organic phosphorus: 0.06 mg/L
  • Dissolved organic phosphorus: 0.03 mg/L
  • Refractory particulate organic matter: 2.1 mg/L
  • Refractory dissolved organic carbon: 1.6 mg/L
  • Refractory dissolved organic nitrogen: 0.6 mg/L
  • Refractory dissolved organic phosphorus: 0.04 mg/L
  • Blue green phytoplankton: 2.0 \(\mu\)g/L (advanced model)
  • Blue green internal nitrogen: 0.008 mg/L
  • Blue green internal phosphorus: 0.0012 mg/L
  • Green phytoplankton: 5.0 \(\mu\)g/L (basic model)

The relevant fluxes considered are:

  • Dissolved oxygen
    • Sediment
    • Atmospheric (both source and sink)
    • Nitrification
    • Dissolved organic carbon mineralisation (oxygen based)
    • Phytoplankton primary productivity
    • Phytoplankton respiration
  • Silicate
    • Sediment
    • Phytoplankton primary productivity
    • Phytoplankton mortality
    • Phytoplankton excretion
  • Ammonium
    • Sediment
    • Atmospheric (wet and dry deposition)
    • Nitrification
    • Dissolved organic nitrogen mineralisation
    • Dissolved refractory organic matter photolysis
    • Phytoplankton primary productivity
  • Nitrate
    • Sediment
    • Atmospheric (wet and dry deposition)
    • Nitrification
    • Denitrification
    • Dissolved organic carbon mineralisation (nitrate based)
    • Phytoplankton primary productivity flux
  • FRP
    • Sediment
    • Atmospheric
    • Dissolved organic phosphorus mineralisation
    • Dissolved refractory organic matter photolysis
    • Phytoplankton primary productivity
  • Particulate organic carbon, nitrogen and phosphorus
    • Hydrolysis
    • Breakdown of refractory particulate organic matter
    • Phytoplankton mortality
  • Dissolved organic carbon, nitrogen and phosphorus
    • Sediment
    • Hydrolysis
    • Mineralisation
    • Dissolved refractory organic matter photolysis
    • Dissolved refractory organic matter activation
    • Phytoplankton excretion
  • Refractory particulate organic matter
    • Breakdown
  • Refractory organic carbon, nitrogen and phosphorus
    • Dissolved refractory organic matter photolysis
    • Dissolved refractory organic matter activation
  • Phytoplankton (both groups)
    • Phytoplankton primary productivity
    • Phytoplankton respiration
    • Phytoplankton mortality
    • Phytoplankton excretion
    • Phytoplankton sedimentation

The mass conservation performance of the WQM is presented in Figure R.11, via \(DO_{mb}(t)\), \(Si_{mb}(t)\), \(Amm_{mb}(t)\), \(Nit_{mb}(t)\), \(FRP_{mb}(t)\), \(POC_{mb}(t)\), \(DOC_{mb}(t)\), \(PON_{mb}(t)\), \(DON_{mb}(t)\), \(POP_{mb}(t)\), \(DOP_{mb}(t)\), \(RPOM_{mb}(t)\), \(RDOC_{mb}(t)\), \(RDON_{mb}(t)\), \(RDOP_{mb}(t)\) and \(PHY_{mb}(t)\). Over the duration of the simulation, mass conservation holds to within 0.028%. Relevant fluxes used to compute these mass balances, as well as total nitrogen and total phosphorus mass balances, are presented subsequently.

Figure R.11: Organics mass balance parameters \(DO_{mb}(t)\), \(Si_{mb}(t)\), \(Amm_{mb}(t)\), \(Nit_{mb}(t)\), \(FRP_{mb}(t)\), \(POC_{mb}(t)\), \(DOC_{mb}(t)\), \(PON_{mb}(t)\), \(DON_{mb}(t)\), \(POP_{mb}(t)\), \(DOP_{mb}(t)\), \(RPOM_{mb}(t)\), \(RDOC_{mb}(t)\), \(RDON_{mb}(t)\), \(RDOP_{mb}(t)\) and \(PHY_{mb}(t)\)

Figure R.12: Dissolved oxygen WQM fluxes \(F_i(t)\) used to compute \(DO_{mb}(t)\)

Figure R.13: Silicate WQM fluxes \(F_i(t)\) used to compute \(Si_{mb}(t)\)

Figure R.14: Ammonium WQM fluxes \(F_i(t)\) used to compute \(Amm_{mb}(t)\)

Figure R.15: Nitrate WQM fluxes \(F_i(t)\) used to compute \(Nit_{mb}(t)\)

Figure R.16: FRP WQM fluxes \(F_i(t)\) used to compute \(FRP_{mb}(t)\)

Figure R.17: POC WQM fluxes \(F_i(t)\) used to compute \(POC_{mb}(t)\)

Figure R.18: DOC WQM fluxes \(F_i(t)\) used to compute \(DOC_{mb}(t)\)

Figure R.19: PON WQM fluxes \(F_i(t)\) used to compute \(PON_{mb}(t)\)

Figure R.20: DON WQM fluxes \(F_i(t)\) used to compute \(DON_{mb}(t)\)

Figure R.21: POP WQM fluxes \(F_i(t)\) used to compute \(POP_{mb}(t)\)

Figure R.22: DOP WQM fluxes \(F_i(t)\) used to compute \(DOP_{mb}(t)\)

Figure R.23: RPOM WQM fluxes \(F_i(t)\) used to compute \(RPOM_{mb}(t)\)

Figure R.24: RDOC WQM fluxes \(F_i(t)\) used to compute \(RDOC_{mb}(t)\)

Figure R.25: RDON WQM fluxes \(F_i(t)\) used to compute \(RDON_{mb}(t)\)

Figure R.26: RDOP WQM fluxes \(F_i(t)\) used to compute \(RDOP_{mb}(t)\)

Figure R.27: Phytoplankton WQM fluxes \(F_i(t)\) used to compute \(PHY_{mb}(t)\)

Figure R.28: Organics total nitrogen and total phosphorus mass balance parameters \(TN_{mb}(t)\) and \(TP_{mb}(t)\)

Following are the WQM control file commands used to generate the above.

simulation class == organics
wq dt == 900.0 
wq units == mgl

oxygen model == O2
    oxygen min max == 0.0, 12.0
    oxygen benthic == 4.7, 1.08
end oxygen model

silicate model == si
    silicate min max == 0.0, 500.0
    silicate benthic == 4.2, 1.01
    oxygen == on
end silicate model

inorganic nitrogen model == ammoniumnitrate
    ammonium min max == 0.0, 50.0
    nitrate min max == 0.0, 100.0
    ammonium benthic == 4.05, 1.06
    nitrate benthic == 4.25, 1.10
    nitrification == 0.05, 4.15, 1.01
    denitrification == michaelis menten, 0.05, 4.01, 1.03
    oxygen == on
    atmospheric deposition == 5.0, 0.0, 0.5
end inorganic nitrogen model

inorganic phosphorus model == frphs
    FRP min max == 0.0, 5.0
    FRP benthic == 4.3, 1.095
    oxygen == on
    atmospheric deposition == 0.5
end inorganic phosphorus model

phyto model == advanced, bluegreen
    min max == 0.05, 50.0
    temperature limitation == standard, 19.0, 22.0, 29.0
    salinity limitation == mixed, 5.0, 10.0, 2.5
    light limitation == chalker, 0.0005, 150.0
    nitrogen limitation == 0.005, 1.5, 2.0, 4.0
    phosphorus limitation == 0.002, 0.02, 0.3, 0.6
    silicate limitation == 0.005, 15.0
    uptake == 2.5, 0.5, 8.0
    primary productivity == 2.3, 1.08 
    respiration == 0.06, 1.04, 0.2, 0.3, 0.1 
    carbon chla ratio == 26.8
    nitrogen fixing == 0.002, 0.3
    settling == constant, -0.3
end phyto model 

phyto model == basic, green
    min max == 0.05, 50.0
    temperature limitation == standard, 19.0, 22.0, 29.0
    salinity limitation == fresh, 2.0, 5.0, 0.0
    light limitation == steele, 0.0005, 150.0
    nitrogen limitation == 0.01, 2.5
    phosphorus limitation == 0.005, 0.05
    silicate limitation == 0.01, 4.0
    uptake == 3.0, 0.6, 8.0
    primary productivity == 2.1, 1.1 
    respiration == 0.02, 1.1, 0.3, 0.4, 0.5 
    carbon chla ratio == 27.8
    nitrogen fixing == 0.001, 0.5
    settling == constant, -0.4
end phyto model

organic matter model == refractory
    carbon min max == 0.0, 10.0, 0.0, 10.0
    nitrogen min max == 0.0, 10.0, 0.0, 10.0
    phosphorus min max == 0.0, 10.0, 0.0, 10.0
    organic matter benthic == 1.0, 1.08
    hydrolysis == 0.05, 0.007, 0.0004, 1.0, 1.05 
    mineralisation == 0.01, 1.2, 1.03, 0.5, 0.5 
    self shading == 0.0, 0.0
    settling == stokes, 0.00000035, 2450.8
    ref carbon min max == 0.0, 10.0, 0.0, 10.0
    ref nitrogen min max == 0.0, 10.0, 0.0, 10.0
    ref phosphorus min max == 0.0, 10.0, 0.0, 10.0
    ref breakdown == 0.001, 0.1, 0.01
    ref activation == 0.01
    ref photolysis == 0.5
    ref self shading == 0.0, 0.0
    ref settling == stokes, 0.00000045, 2450.8
end organic matter model

material == default
    oxygen flux ==  -1400.0
    silicate flux == 10.0
    ammonium flux == 20.0
    nitrate flux == 30.0
    frp flux == 5.0
    doc flux == 20.0
    don flux == 10.0
    dop flux == 5.0
end material

material == 1
    oxygen flux == -1100.0
    silicate flux == 11.0
    ammonium flux == 21.0
    nitrate flux == 31.0
    frp flux == 6.0
    doc flux == 19.0
    don flux == 9.0
    dop flux == 4.0
end material

material == 2
    oxygen flux == -1200.0
    silicate flux == 12.0
    ammonium flux == 22.0
    nitrate flux == 32.0
    frp flux == 7.0
    doc flux == 18.0
    don flux == 8.0
    dop flux == 3.0
end material

material == 3
    oxygen flux == -1300.0
    silicate flux == 13.0
    ammonium flux == 23.0
    nitrate flux == 33.0
    frp flux == 8.0
    doc flux == 17.0
    don flux == 7.0
    dop flux == 2.0
end material